﻿using System;
using SharpSqlAnalyzer.nodes.hive;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000378 RID: 888
	public class TWindowDef : TParseTreeNode
	{
		// Token: 0x0600250F RID: 9487 RVA: 0x003396DA File Offset: 0x003378DA
		public override void init(object arg1)
		{
			this._name = (TObjectName)arg1;
		}

		// Token: 0x06002510 RID: 9488 RVA: 0x003396E8 File Offset: 0x003378E8
		public override void init(object arg1, object arg2)
		{
			this._name = (TObjectName)arg1;
		}

		// Token: 0x170007FF RID: 2047
		// (get) Token: 0x06002511 RID: 9489 RVA: 0x003396F6 File Offset: 0x003378F6
		// (set) Token: 0x06002512 RID: 9490 RVA: 0x003396FE File Offset: 0x003378FE
		public TWithinGroup withinGroup
		{
			get
			{
				return this._withinGroup;
			}
			set
			{
				this._withinGroup = value;
			}
		}

		// Token: 0x17000800 RID: 2048
		// (get) Token: 0x06002513 RID: 9491 RVA: 0x00339707 File Offset: 0x00337907
		// (set) Token: 0x06002514 RID: 9492 RVA: 0x0033970F File Offset: 0x0033790F
		public TKeepDenseRankClause keepDenseRankClause
		{
			get
			{
				return this._keepDenseRankClause;
			}
			set
			{
				this._keepDenseRankClause = value;
			}
		}

		// Token: 0x17000801 RID: 2049
		// (get) Token: 0x06002515 RID: 9493 RVA: 0x00339718 File Offset: 0x00337918
		// (set) Token: 0x06002516 RID: 9494 RVA: 0x00339720 File Offset: 0x00337920
		public bool includingOverClause
		{
			get
			{
				return this._includingOverClause;
			}
			set
			{
				this._includingOverClause = value;
			}
		}

		// Token: 0x17000802 RID: 2050
		// (get) Token: 0x06002517 RID: 9495 RVA: 0x00339729 File Offset: 0x00337929
		// (set) Token: 0x06002518 RID: 9496 RVA: 0x00339731 File Offset: 0x00337931
		public virtual THiveDistributeBy DistributeBy
		{
			get
			{
				return this._distributeBy;
			}
			set
			{
				this._distributeBy = value;
			}
		}

		// Token: 0x17000803 RID: 2051
		// (get) Token: 0x06002519 RID: 9497 RVA: 0x0033973A File Offset: 0x0033793A
		// (set) Token: 0x0600251A RID: 9498 RVA: 0x00339742 File Offset: 0x00337942
		public virtual TWindowFrame WindowFrame
		{
			get
			{
				return this._windowFrame;
			}
			set
			{
				this._windowFrame = value;
			}
		}

		// Token: 0x17000804 RID: 2052
		// (get) Token: 0x0600251B RID: 9499 RVA: 0x0033974B File Offset: 0x0033794B
		// (set) Token: 0x0600251C RID: 9500 RVA: 0x00339753 File Offset: 0x00337953
		public virtual THiveClusterBy ClusterBy
		{
			get
			{
				return this._clusterBy;
			}
			set
			{
				this._clusterBy = value;
			}
		}

		// Token: 0x17000805 RID: 2053
		// (get) Token: 0x0600251D RID: 9501 RVA: 0x0033975C File Offset: 0x0033795C
		// (set) Token: 0x0600251E RID: 9502 RVA: 0x00339764 File Offset: 0x00337964
		public virtual THiveSortBy SortBy
		{
			get
			{
				return this._sortBy;
			}
			set
			{
				this._sortBy = value;
			}
		}

		// Token: 0x0600251F RID: 9503 RVA: 0x0033976D File Offset: 0x0033796D
		public void setSortClause(TOrderBy b)
		{
			this._orderBy = b;
		}

		// Token: 0x06002520 RID: 9504 RVA: 0x00339776 File Offset: 0x00337976
		public void setPartitionClause(TPartitionClause c)
		{
			this._partitionClause = c;
		}

		// Token: 0x06002521 RID: 9505 RVA: 0x0033977F File Offset: 0x0033797F
		public void setReferenceName(TObjectName n)
		{
			this._referenceName = n;
		}

		// Token: 0x06002522 RID: 9506 RVA: 0x00339788 File Offset: 0x00337988
		public void setName(TObjectName n)
		{
			this._name = n;
		}

		// Token: 0x17000806 RID: 2054
		// (get) Token: 0x06002524 RID: 9508 RVA: 0x0033979A File Offset: 0x0033799A
		// (set) Token: 0x06002523 RID: 9507 RVA: 0x00339791 File Offset: 0x00337991
		public virtual TObjectName Name
		{
			get
			{
				return this._name;
			}
			set
			{
				this._name = value;
			}
		}

		// Token: 0x17000807 RID: 2055
		// (get) Token: 0x06002525 RID: 9509 RVA: 0x003397A2 File Offset: 0x003379A2
		// (set) Token: 0x06002526 RID: 9510 RVA: 0x003397AC File Offset: 0x003379AC
		public TWindowPartitioningSpec partitionSpec
		{
			get
			{
				return this._partitionSpec;
			}
			set
			{
				this._partitionSpec = value;
				if (value == null)
				{
					return;
				}
				this._partitionClause = value.PartitionClause;
				this._orderBy = value.OrderBy;
				this._sortBy = value.SortBy;
				this._clusterBy = value.ClusterBy;
				this._distributeBy = value.DistributeBy;
			}
		}

		// Token: 0x17000808 RID: 2056
		// (get) Token: 0x06002527 RID: 9511 RVA: 0x00339800 File Offset: 0x00337A00
		// (set) Token: 0x06002528 RID: 9512 RVA: 0x00339808 File Offset: 0x00337A08
		public virtual TObjectName ReferenceName
		{
			get
			{
				return this._referenceName;
			}
			set
			{
				this._referenceName = value;
			}
		}

		// Token: 0x17000809 RID: 2057
		// (get) Token: 0x06002529 RID: 9513 RVA: 0x00339811 File Offset: 0x00337A11
		// (set) Token: 0x0600252A RID: 9514 RVA: 0x00339819 File Offset: 0x00337A19
		public virtual TOrderBy orderBy
		{
			get
			{
				return this._orderBy;
			}
			set
			{
				this._orderBy = value;
			}
		}

		// Token: 0x1700080A RID: 2058
		// (get) Token: 0x0600252C RID: 9516 RVA: 0x0033982B File Offset: 0x00337A2B
		// (set) Token: 0x0600252B RID: 9515 RVA: 0x00339822 File Offset: 0x00337A22
		public virtual TPartitionClause PartitionClause
		{
			get
			{
				return this._partitionClause;
			}
			set
			{
				this._partitionClause = value;
			}
		}

		// Token: 0x0600252D RID: 9517 RVA: 0x00339833 File Offset: 0x00337A33
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x0600252E RID: 9518 RVA: 0x00339843 File Offset: 0x00337A43
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x0600252F RID: 9519 RVA: 0x00339854 File Offset: 0x00337A54
		public new void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this.keepDenseRankClause != null)
			{
				this.keepDenseRankClause.doParse(psql, plocation);
			}
			if (this.withinGroup != null)
			{
				this.withinGroup.doParse(psql, plocation);
			}
			if (this.PartitionClause != null)
			{
				this.PartitionClause.doParse(psql, plocation);
			}
			if (this.orderBy != null)
			{
				this.orderBy.doParse(psql, plocation);
			}
		}

		// Token: 0x04001CAB RID: 7339
		private TWithinGroup _withinGroup;

		// Token: 0x04001CAC RID: 7340
		private TKeepDenseRankClause _keepDenseRankClause;

		// Token: 0x04001CAD RID: 7341
		private bool _includingOverClause = true;

		// Token: 0x04001CAE RID: 7342
		private TWindowFrame _windowFrame;

		// Token: 0x04001CAF RID: 7343
		private THiveDistributeBy _distributeBy;

		// Token: 0x04001CB0 RID: 7344
		private THiveClusterBy _clusterBy;

		// Token: 0x04001CB1 RID: 7345
		private THiveSortBy _sortBy;

		// Token: 0x04001CB2 RID: 7346
		private TObjectName _name;

		// Token: 0x04001CB3 RID: 7347
		private TObjectName _referenceName;

		// Token: 0x04001CB4 RID: 7348
		private TOrderBy _orderBy;

		// Token: 0x04001CB5 RID: 7349
		private TPartitionClause _partitionClause;

		// Token: 0x04001CB6 RID: 7350
		private TWindowPartitioningSpec _partitionSpec;
	}
}
